//package com.rbac.service.test.impl;
//
//import com.common.Result;
//import com.domain.dto.test.UserRolePermissionDto;
//import com.domain.vo.test.PageBean;
//import com.github.pagehelper.PageHelper;
//import com.github.pagehelper.PageInfo;
//import com.rbac.exception.CommonException;
//import com.rbac.mapper.test.RoleMapper2;
//import com.rbac.pojo.Role;
//import com.rbac.service.test.RoleService;
//import org.springframework.beans.factory.annotation.Autowired;
//import org.springframework.stereotype.Service;
//
//import java.util.List;
//
//@Service
//public class RoleServiceImpl implements RoleService {
//    @Autowired
//    private RoleMapper2 roleMapper2;
//
//    public Result getList(Integer pageNum, Integer pageSize) {
//        //或者设置信息
//        //开启分页
//        PageHelper.startPage(pageNum, pageSize);
//        //查询数据
//        List<Role> list = roleMapper2.getList(pageNum, pageSize);
//        //获取分页数据
//        PageInfo<Role> pageInfo = new PageInfo<>(list);
//        PageBean<Role> pageBean = new PageBean<>();
//        pageBean.setTotal(pageInfo.getTotal());
//        pageBean.setItem(pageInfo.getList());
//
//        return Result.success(pageBean);
//    }
//
//    @Override
//    public Result delete(Integer id) {
//        //判断id的用户是否为空
//        Role role = getRoleById(id);
//        if(role == null){
//            return Result.fail("用户不存在");
//        }
//        //删除角色时，需要先删除外键
//        roleMapper2.deleteRoleUser(id);
//        roleMapper2.deletePermissionRole(id);
//        //删除角色
//        roleMapper2.delete(id);
//
//        return Result.success("删除角色成功");
//    }
//
//    @Override
//    public Role getRoleById(Integer id) {
//        return roleMapper2.getRoleById(id);
//    }
//
//    @Override
//    public Result save(Role role) {
//        Role queryRole = getRoleById(role.getId());
//        if(queryRole != null){
//            return Result.fail("角色已存在");
//        }
//        roleMapper2.save(role);
//        //TODO 更新用户RolePermission 和 UserRole
//        return Result.success();
//    }
//
//    public Result update(Role role) {
//        roleMapper2.update(role);
//        //TODO 更新用户RolePermission 和 UserRole
//
//        return Result.success();
//    }
//
//    @Override
//    public Result updateRole(UserRolePermissionDto roleDto) {
//        //TODO 获取对象信息
//        Role role =new Role();
////        Role role = roleDto.getRole();
//        List<Integer> userArr = roleDto.getUserArr();
//        List<Integer> permissionArr = roleDto.getPermissionArr();
//
//        //查询是否存在角色
//        Role queyRole = roleMapper2.getRoleById(role.getId());
//        if(queyRole == null){
//            throw new CommonException("更新用户时，查询用户为空");
//        }
//        //更新role表
//        roleMapper2.update(role);
//        //维护中间表
//        if(userArr!=null && !userArr.isEmpty()){
//            System.out.println("更新的用户角色表不为空");
//            List<Integer> userData = roleMapper2.getRoleUserData(role.getId());
//            for(Integer userId:userArr){
//                if(!userData.contains(userId)){
//                    roleMapper2.saveUserRole(userId, role.getId());
//                }
//            }
//        }
//        if(permissionArr != null && !permissionArr.isEmpty()){
//            System.out.println("更新的权限角色表不为空");
//            List<Integer> permissionData = roleMapper2.getRolePermissionData(role.getId());
//            for(Integer permissionId:permissionArr){
//                if(!permissionData.contains(permissionId)){
//                    roleMapper2.saveRolePermission(permissionId, role.getId());
//                }
//            }
//        }
//
//        return Result.success("角色更新成功");
//    }
//
//    @Override
//    public Result getUserRole(Integer roleId) {
//        //判断id是否为空
//        //根据角色用户中间表来查询具体用户
//        List<Integer> employeeList = roleMapper2.getUserRole(roleId);
////        System.out.println(employeeList);
//        return Result.success("角色对应的用户id为："+employeeList);
//    }
//
//    @Override
//    public Result getRolePermission(Integer roleId) {
//        //判断id是否为空
//        //根据角色权限中间表来查询具体权限
//        List<Integer> permissionList = roleMapper2.getRolePermission(roleId);
//        return Result.success("角色对应的权限id为："+permissionList);
//    }
//
//    @Override
//    public List<Role> getRoleAllById() {
//        return roleMapper2.getRoleAllById();
//    }
//
//
//}
